The present invention relates to real time image generation systems of the type used in simulation and interactive training and relates more particularly to a method for anti-aliasing video displays.
In real time image generation systems, it is typically necessary to completely build a new image during each frame interval, e.g. one fifteenth second or less, since such systems preferably permit the free changing of viewpoint in a three-dimensional world and the free changing of the position and orientation of various objects which can be seen from the viewpoint. Real time image generation systems typically operate from a database providing an inventory of objects which can be displayed. The data typically represents each object as a group of three-dimensional polygons in a single size which can then be positioned, scaled and rotated or oriented by applying mathematical transforms. The polygons may, for example, be represented by the locations of vertices. Typically, there is associated with each surface of the polygon a texture map which permits a textured surface to be, in effect, projected on the plane of the polygon thereby to represent a surface.
In building up an image, the various objects within the possible field of view are analyzed sequentially and pixel definitions are output for each screen-space pixel which the object occupies completely or partially. Since it is computationally difficult to order the objects in terms of depth or distance from the viewpoint prior to processing, there is typically provided with each object pixel definition a depth value which represents distance from the viewpoint to the object.
As is understood by those skilled in the art, the objects in the database are typically calculated at a greater precision than the pixel resolution of the video display used to present the constructed image. In other words, an edge of a polygon may pass through and therefore only partially occupy a given pixel. If an object, which only partially covers a pixel is allowed to dominate or completely define a given pixel, e.g. on the basis that it is the closest object, an effect known as aliasing or staircasing may occur in which supposedly straight lines appear jagged because of the graininess of resolution of the video display. It is known that this effect can be ameliorated by mixing contributions from all objects which should properly contribute to what is seen at that pixel position. This is commonly described as anti-aliasing. For this purpose, a weight value is often provided with each object pixel definition which indicates the degree or extent of pixel coverage.
One method of accomplishing the mixing of contributions is to define sub-pixels which represent a finer resolution within the area of each actual pixel and by keeping track of which object attributes should contribute to each sub-pixel. However, in real time systems in which images must be built up multiple times and buffered for each frame interval, the memory requirements for the frame buffers is multiplied severely. For example, to provide a 4 by 4 sub-pixel analysis, the memory requirements would be multiplied sixteen fold. Accordingly, in prior art systems, a composite color and brightness for each pixel has been built up in a single buffer by mixing contributions from each new object with those contributions accumulated previously with each contribution being proportioned in accordance with its respective weight value. This method, however, has demonstrated observable anomalies and bleed-through effects when implemented in a non-ordered depth buffer system.
Among the objects of the present invention may be noted the provision of a real time image generation system which minimizes aliasing effects; the provision of such a system which minimizes bleed-through effects; the provision of such a system which does not require a sub-pixel buffering of pixel display definitions; the provision of such a system which does not require greatly expanded frame buffer memory; the provision of such a method which is highly reliable and which is of relatively simple and inexpensive implementation.